package com.ling.pl.autoproject.definition.component.form.model;

import com.ling.pl.core.commons.annotation.Dict;
import com.ling.pl.core.commons.annotation.ModelProperty;

import javax.persistence.Column;

public class Form {
    @Column(name = "ENTITY_ID", length = 36)
    @ModelProperty(comment = "实体id")
    String entityId;

    @Column(name = "NAME", length = 150)
    @ModelProperty(comment = "名称")
    String name;

    @Column(name = "CODE", length = 150)
    @ModelProperty(comment = "代码")
    String code;

    @Column(name = "FORM_TYPE", length = 150)
    @ModelProperty(comment = "类型")
    @Dict(code = "builder.component.formType", des = "编辑表单,查询表单")
    String formType;

    @Column(name = "FUNCTION_TYPE", length = 150)
    @ModelProperty(comment = "类型")
    @Dict(code = "builder.component.functionType", des = "流程操作,向导表单")
    String functionType;

    @Column(name = "FORE_ARCHITECTURE", length = 250)
    @ModelProperty(comment = "前端架构方案")
    @Dict(code = "builder.project.foreArchitecture", des = "angular,react,dorado7")
    String foreArchitecture;

    @Column(name = "DEFAULT_BACK_PROCESSOR_ID", length = 250)
    @ModelProperty(comment = "默认后台处理对象")
    String defaultBackProcessorId;

    @Column(name = "FORE_PLUGIN", length = 250)
    @ModelProperty(comment = "前端应用插件")
    String forePlugin;

    @Column(name = "COMPONENT_MSG", length = 250)
    @ModelProperty(comment = "部件消息")
    String componentMsg;

    @Column(name = "TODO", length = 500)
    @ModelProperty(comment = "todo")
    String todo;

    //表单布局
    @Column(name = "WIDTH")
    @ModelProperty(comment = "表单宽度")
    Integer width;

    @Column(name = "LAYOUT_TYPE", length = 150)
    @ModelProperty(comment = "布局模式")
    @Dict(code = "builder.component.layoutType", des = "z自动表格,表格,?格布局")
    String layoutType;

    @Column(name = "DEFAULT_LABEL_WIDTH")
    @ModelProperty(comment = "默认标题宽度")
    Integer defaultLabelWidth;

    @Column(name = "IS_TAB")
    @ModelProperty(comment = "显示分页头部")
    Boolean isTab;

    @Column(name = "TAB_POSITION", length = 150)
    @ModelProperty(comment = "分页头部位置")
    @Dict(code = "builder.component.tabPosition", des = "左右上下不显示")
    String tabPosition;

    @Column(name = "IS_TOOLBAR")
    @ModelProperty(comment = "表单导航栏")
    Boolean isToolBar;

    //,?格参数
    @Column(name = "LABEL_SPAN")
    @ModelProperty(comment = "标题列数")
    Integer labelSpan;

    @Column(name = "CONTROLLER_SPAN")
    @ModelProperty(comment = "控件列数")
    Integer controllerSpan;
}
